package com.ygu.mylist.activities;

import java.util.List;
import com.ygu.mylist.R;
import com.ygu.mylist.adapter.Main_List_Adapter;
import com.ygu.mylist.db.DataBaseHelper;
import com.ygu.mylist.db.DBQueryImpl;
import com.ygu.mylist.db.DBQueryResult;
import com.ygu.mylist.db.OprateDataBases;

import android.support.v4.app.Fragment;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.webkit.WebView.FindListener;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;

public class Current_Fragment extends Fragment implements OnClickListener{
	//定义变量
	private ListView lv;
	private TextView tips;
	private EditText add_text;
	private ImageButton confirm;	
	private SQLiteOpenHelper dbh;
	private List<DBQueryResult> list_data;
	private OprateDataBases opdatabase;
	private Main_List_Adapter lvadapter;

	@Override
	//复写onCreateView方法，创建Fragment，类似于Activity的onCreate方法
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		//将main_list_fragment布局文件加载到inflater
		View rootView=inflater.inflate(R.layout.main_list_fragment, container, false);
		//初始化fragment
		initView(rootView);
		//定义各个事件的方法
		initEvent();
		//初始化适配器
		initAdapter();
		return rootView;
	}
	
	



	private void initAdapter() {
		// 实例化数据库操作辅助类
		dbh=new DataBaseHelper(getActivity());
		//实例化查询结果的list对象
		list_data=new DBQueryImpl(dbh.getWritableDatabase()).query_current_list();
		//实例化自定义的Main_List_Adapter适配器
		lvadapter=new Main_List_Adapter(this, list_data);
		//设置ListView的适配器
		lv.setAdapter(lvadapter);
	}
	private void initView(View rootView) {
		// 通过rootView 获得布局文件中的控件
		tips=(TextView) rootView.findViewById(R.id.tips);
		lv = (ListView) rootView.findViewById(R.id.main_list);
		add_text=(EditText) rootView.findViewById(R.id.add);
		confirm=(ImageButton) rootView.findViewById(R.id.confirm);
	}
	private void initEvent(){
		//设置确定按钮的点击事件
		confirm.setOnClickListener(this);
	}
	
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		switch(v.getId()){
		case R.id.confirm:
			String content = add_text.getText().toString();
			/**
			 * 输入框有内容时点击后
			 * 1.将内容清空
			 * 2.将输入框中的内容插入到数据库中
			 * 3.刷新适配器
			 */
			if(content!=null){
				opdatabase = new OprateDataBases(dbh.getWritableDatabase());
				opdatabase.insert_list(content,1);
				add_text.setText("");
				refreshAdapter();
			}else if(content==null||"".equals(content)){
				return;
			}
			break;
		}
		
	}
	/**
	 * 刷新适配器方法，通过AsyncTask异步任务方法刷新适配器
	 */
	public void refreshAdapter(){
		new AsyncTask<Void, Void, Void>(){
			/**
			 * 后台运行的方法
			 * 1.将当前的list_data清空
			 * 2.将查询结果重新添加到list_data
			 */
			@Override
			protected Void doInBackground(Void... params) {
				// TODO Auto-generated method stub
				try {
					list_data.clear();
					List<DBQueryResult> temp=new DBQueryImpl(dbh.getWritableDatabase()).query_current_list();		
					//Log.i("执行没111", "执行没1111");
					if(temp!=null&&temp.size()>0){
						
						list_data.addAll(temp);
						
					}
				} catch (Exception e) {
					// TODO: handle exception
				}
				return null;
			}
			@Override
			/**
			 * 执行notifyDataSetChanged()方法，刷新适配器
			 */
			protected void onPostExecute(Void result) {
				// TODO Auto-generated method stub
				lvadapter.notifyDataSetChanged();
				
				//Log.i("执行没", "执行没");
			}		
		}.execute(null,null,null);
	}
}
